45 - 5.2.7 Rechnerorganisation: Anhang zu Systemaufrufen [ID:15396]
50 von 133 angezeigt

Nun wir haben bei der Erläuterung die Systemaufrufe ablaufen gesehen, dass die mit einem Unterbrechungsbefehl

ausgelöst werden. Je nach Prozessor gibt es hier unterschiedliche Befehle oder Bezeichnungen für

diese Befehle. Funktionalverhalten, die sich schon sehr ähnlich beim x86 oder bei der Intel Familie

haben wir sowas wie int für ein Softwareinterrupt oder wenn wir Prozessoren von Motorola oder noch

alte Prozessoren von DEC sehen, dann spricht man von dem TREP. Beim PowerPC heute spricht man von

dem Systemcall SC oder wenn wir auch noch wiederum zurückgehen in die Historie von EBM System 370,

da waren es die Supervisor Records, die mit dem SVC Befehl und als Unterbrechungsbefehl

eben ausgelöst werden können. Nun, für den Intel stellt sich dann dabei folgendes Bild

letztendlich da, wo denn unterschiedliche Komponenten relevant sind. Einmal das

Maschinenprogramm, da wo der Maschinenbefehl ja selbst codiert vorliegt, dann haben wir

die Befehlsetzebene, die gewisse Mechanismen letztendlich definiert, damit man überhaupt in

der Lage ist ein Betriebssystemprogramm bei Ausführung eines solchen Unterbrechungsbefehl

denn zu aktivieren, nämlich den eigentlichen Händler, den man hat. Hier auf der Befehlsetzebene

hat man eine typischerweise eine Vektortabelle, wo letztendlich die Adresse eines solchen Händlers

enthalten ist und das, was die CPU dann letztendlich nur macht, ist, dass sie auf Basis eines

besonderen des Operanten zu diesem Unterbrechungsbefehl in der Lage ist, praktisch diese Händleradresse,

die wir hier rechts drüben haben, aus der Tabelle denn entsprechend heraus zu lokalisieren. Wichtig

ist, dass wenn man Systemaufwürfe mit Unterbrechungsbefehlen durchführt, dann wird die CPU

immer ihren ganz gewöhnlichen Unterbrechungszyklus durchlaufen. Hier konkret für den Intel heißt

das eigentlich, dass wenn so ein Intel Maschinenbefehl zur Ausführung kommt, dann wird der Prozessor

einen Prozessorstatus sichern, einen minimalen Prozessorstatus. Der muss also, umfasst hier

beim Intel nicht den kompletten Registersatz, aber der Program-Count, der Code-Segment und

im Wesentlichen auch das Flags-Register von dem x86 wird immer gesichert. Dann wird man

den Befehlszähler, den Instruction-Pointer aus diesem Vektor hier laden, das heißt,

einen Hauptspeicherzugriff machen müssen, denn dieser Vektor steht in einer Tabelle,

die Tabelle liegt im Hauptspeicher. Die Tabelle ist durchaus recht groß. Hier konkret Hex

80 bedeutet Eintrag Nummer 128 in dieser Vektor-Tabelle von dem Intel-Prozessor. Dort wird ein Eintrag

ausgelesen, um dann letztendlich die Anfangsadresse des Händlers, der Funktion im Betriebssystem

zu identifizieren, wo die Behandlung dieser Ausnahmesituation dann letztendlich stattfindet.

Und der Nebeneffekt ist eben dabei, dass man einen Moduswechsel durchführt, dass man von

dem nicht privilegierten Arbeitsmodus wechselt rüber in den privilegierten Arbeitsmodus.

Nun, wenn der Befehlsauffruf zum Ende kommt, der wird ja durch diese IRED-Operation händlerseitig

markiert, dann macht man es alles wieder rückgängig. Man wird den gesicherten Prozessor-Status

wieder herstellen und man wird dann zurückkehren in den nicht privilegierten Arbeitsmodus und

dann letztendlich als ersten Maschinenbefehl den auf der Maschinenprogramm-Ebene zur Ausführung

bringen, der diesem INT-Befehl folgt. Man springt zurück im Endeffekt. Das sind die

Aktionen, die hier als Folge eines solchen Unterbrechungsbefehls beim Systemaufruf stattfinden

werden. Was man sieht, ist eigentlich, dass man eine Ausnahmabehandlung macht, ohne dass

wirklich eine Ausnahmesituation existiert. Denn dieser Systemaufruf ist ja bewusst, der

ist ja codiert, er ist programmiert im Maschinenprogramm, ist eigentlich ganz normal. Dennoch

verwendet man einen Mechanismus, der eigentlich zum Exception-Handling verwendet wird, der

dafür gedacht ist, dass gewisse Aktivitäten innerhalb eines Betriebssystems gestartet

werden müssen, weil die CPU in eine Ausnahmesituation gelangt ist. Rein logisch kann man es schon

sagen, denn der Systemaufruf bedeutet ja letztendlich die partielle Interpretation, die dann durch

ein Betriebssystem vorzunehmen ist. Die CPU ist nicht in der Lage, den Systemaufruf zu

verstehen, zu begreifen und ruft deshalb zu Hilfe. Also man könnte schon sagen, es ist

eine Ausnahmesituation. Schaut man sich die Sache aber genauer an, dann ist es nicht eine

Ausnahmesituation, wie man letztendlich sie normalerweise versteht. Es sind ganz normale

Aktionen, die halt hier ausgelöst werden, diese Systemaufrufe. Man macht es über einen

Trip. Damit wird der gesamte Vorgang relativ schwergewichtig. Wenn man sich das mal so

Teil einer Videoserie :

Zugänglich über

Offener Zugang

Dauer

00:15:20 Min

Aufnahmedatum

2020-05-09

Hochgeladen am

2020-05-10 00:56:19

Sprache

de-DE

Einbetten
Wordpress FAU Plugin
iFrame
Teilen